home *** CD-ROM | disk | FTP | other *** search
/ Space & Astronomy / Space and Astronomy (October 1993).iso / mac / VIEWERS / AMIGA / GIFMACHN.LZH / README.RLP < prev    next >
Text File  |  1991-07-01  |  4KB  |  106 lines

  1. GIFMachine -- GIF to SHAM conversion program by Christopher Wichura (2.0 only)
  2. GIFM13 -- Modified to run under DOS 1.3, with arp.library.
  3.  
  4. I wanted to use Christopher Wichura's GIFMachine, but I do not have access
  5. to DOS 2.0. So, I hacked up his source code...
  6.  
  7. Wichura has given me permission to distribute these changes in the form of
  8. Lattice DIFF files. To construct a full set of my modifed source code,
  9. you will need Wichura's original files (GIFMAC.LZH on Compu$erve).
  10.  
  11.     Robert L. Pyron, 01July91
  12.     BIX: rpyron
  13.  
  14. -----------------------------------------------------------------------------
  15. This archive includes:
  16.  
  17. GIFMachine.docs        Wichura's doc file
  18. GIFMachine        original version, runs under 2.0
  19. GIFM13            modified version, runs under 1.3 with arp.library
  20. GIFM13.diff        Lattice DIFF files, concatenated (see below)
  21. README.RLP        this file
  22. UnDiff            my undiff program
  23. UnDIff.c        source for undiff
  24.  
  25. rlpsrc/            my subdirectory for modified source files
  26.  
  27.     ARPsvR.lib    S. Vigna's ARPsv.lib, compiled with register args
  28.     iffw.c        Electronic Arts source (public domain)
  29.  
  30. rlpsrc/iff/        Electronic Arts source (public domain)
  31.  
  32.     compiler.h, gio.h, iff.h, ilbm.h
  33.  
  34. -----------------------------------------------------------------------------
  35. NOT INCLUDED in this archive:
  36.  
  37. Sources/        Wichura's original source code
  38.  
  39.     24to12.c, doflip.c, doimage.c, extensions.c, GIFMachine.h,
  40.     giftosham.c, lmkfile, main.c, mymem.c, myprintf.c, rgbdiff.c,
  41.     startup.a, stripborder.c, version.o, warncli.c, writeiff.c, xcomp.c
  42.  
  43.  
  44. -----------------------------------------------------------------------------
  45. How to create a copy of my modified source code:
  46.  
  47. 1. Create subdirectory "sources".
  48. 2. Copy Wichura's original files into both "sources" and "rlpsrc".
  49. 3. Run the undiff program:
  50.     UnDiff < GIFM13.diff
  51.  
  52. -----------------------------------------------------------------------------
  53. All my changes (except in "lmkfile") are marked with "#ifdef RLP". The most
  54. extensive changes were in main.c and GIFMachine.h, along with a large
  55. addition to writeiff.c, and some minor changes to other files.
  56.  
  57. 1.    I use the ARP library.
  58.  
  59.     I am using Sebastiano Vigna's startup code. This needs to be
  60.     reworked some for more compatibility of argument handling and
  61.     of workbench support.
  62.  
  63.     Full source for S. Vigna's startup code can be found in an archive
  64.     known (on BIX, at least) as LATARPSV11.LZH. I am including only
  65.     the file ARPsvR.lib, which is Vigna's code compiled with register
  66.     arguments.
  67.  
  68. 2.    I don't have IFFPARSE (is this part of 2.0?), so I put together
  69.     a minimal set to cover the functions that are used in Wichura's
  70.     code. They call functions in Electronic Arts' IFFW.C. My functions
  71.     are only a hack, and should not be used as the basis of any
  72.     implementation of IFFPARSE.
  73.  
  74.     I am including all the relevant IFF source in the subdirectory
  75.     "iff". This is public domain from Electronic Arts.
  76.  
  77. 3.    The GetValue() and PutValue() macros did not work correctly, at
  78.     least using Lattice 5.05. These macros referenced pointers to
  79.     RGB structures, and cast them into pointers to WORD. The problem
  80.     was that the RGB structure is three bytes long, and an array of
  81.     them is packed... I added a pad field for alignment.
  82.  
  83.     If one wanted to be clever, either addr or addr+1 is on a word
  84.     boundary, and fits entirely within the RGB structure. This could
  85.     be handled easily with a macro.
  86.     Drawbacks:
  87.         -- Too "clever"; a potential maintenance problem.
  88.         -- Might make the program noticeable slower.
  89.         -- It's bound to drive somebody up the wall.
  90.     Advantages:
  91.         -- Could save a considerable amount of memory on large pics.
  92.         -- It's bound to drive somebody up the wall.
  93.  
  94. 4.    rgbdiff.c used floating-point math to scale some byte values.
  95.     Since this only happens at program initialization, and this is
  96.     the only spot that uses FP, I changed the code to use integer
  97.     multiplication and bit shifts. The amount of time saved is
  98.     minuscule, but this means we have one less library to worry about.
  99.  
  100. 5.    I am using the object file "version.o" that Wichura supplied with
  101.     his code. I could write a program to update this at every compile,
  102.     but for now you are stuck with the same version number.
  103.  
  104. 6.    What the heck is a "boustrophedonic Floyd-Steinberg error diffusion
  105.     algorithm"? And how is it pronounced?
  106.